package liming.tool.json;


import org.json.JSONObject;

import java.util.Map;

public interface JsonDeserializer extends JsonGetName{
    default void deserialize(JSONObject json){
        if(json.has(getJsonRootName())){
            deserializeBody(ValueOf.valueOf(JSONObject.class,json.get(getJsonRootName())));
            return;
        }
        deserializeBody(json);
    }
    default void deserializeBody(JSONObject json){
        JsonConstructor.deserialize(this,json);
        afterDeserialize(json);
    }
    default void afterDeserialize(JSONObject json){}
}
